<?php

namespace Mogod\Core\Model;

/**
 *
 * Запрос на получение моделей
 *
 * @author goorus, morph
 *
 */
class ModelQuery
{

	/**
	 * Название модели
	 *
	 * @var string
	 */
	protected $modelName;

	/**
	 *
	 * @var array of ModelOption
	 */
	protected $options = array();

	/**
	 * Добавляет опции опции
	 *
	 * @param ModelOption $option
	 * @param ModelOption $_
	 * @return $this
	 */
	public function byOptions()
	{
		$this->options = array_merge($this->options, func_get_args());
		return $this;
	}

	/**
	 * Поиск по первичному ключу
	 *
	 * @param mixed $pk
	 * @return $this
	 */
	public function byPk($pk)
	{
		return $this->byOptions(new \Mogod\Core\Model\Option\OptionPk($pk));
	}

	/**
	 *
	 * @return string
	 */
	public function getModelName()
	{
		return $this->modelName;
	}

	/**
	 * Возвращает опции
	 *
	 * @return array of ModelOption
	 */
	public function getOptions()
	{
		return $this->options;
	}

	/**
	 *
	 * @param string $modelName
	 * @return $this
	 */
	public function setModelName($modelName)
	{
		$this->modelName = $modelName;
		return $this;
	}

}
